/***************************************************
 @Name :        小铭同学
 @Time :        2025-09-03
 @Email :       LiaoMingWJ233@163.com
 @Comment :     智能 AI 对话
 @FileName :    widget.h
 @Version :     1.0
****************************************************/


#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include "syszuxpinyin.h"
#include <QDebug>
#include <QPixmap>
#include <QScrollArea>
#include <QVBoxLayout>

#include "deepseek_chat.h"

#include "tcp.h"

// 消息类型枚举：左侧（他人消息）和右侧（自己消息）
enum MessageType {
    MessageType_Left,    // 左侧消息
    MessageType_Right    // 右侧消息
};

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    
protected:
    Deepseek_Chat * deepseek; // AI 对话
    
    TCP * tcp;
    
    void PushButton_Tcp(QPushButton* PushButton);    
    SyszuxPinyin *pinyinInput;
    void on_textEdit_focusOut();
    
    // ChatWindow 功能接口
    void initChatUI();                           // 初始化聊天界面
    void addMessage(MessageType type, const QString &nickname, 
                    const QString &content, const QPixmap &avatar); // 添加消息
    void scrollToBottom();                       // 滚动到底部
    void clearChat();                            // 清空聊天记录
    
private slots:
    void on_exit_clicked();
    void on_textEdit_selectionChanged();
    void on_sendButton_clicked();                // 发送按钮点击事件
    
private:
    Ui::Widget *ui;
    
    // ChatWindow 相关成员变量
    QScrollArea *m_scrollArea;       // 滚动区域
    QWidget *m_contentWidget;        // 内容部件
    QVBoxLayout *m_mainLayout;       // 主布局
};

#endif // WIDGET_H
